package AVL;
public interface AVL {
    /**
     * @param numerosDaArvore
     *        Vetor de numeros inteiros positivos a serem inseridos na arvore.
     * Caso o parametro seja invalido o método retorna "A arvore nao pode ser criada."
     * @return String descrevendo o passo-a-passo da operacao (rotacoes realizadas para manter a arvore balanceada);
     *        caso o parametro seja invalido (menor ou igual a zero; elemento repetido), retornar "Parametro invalido".
     *        
     */
    String montarArvore(int [] numerosDaArvore);

    /**
     * Pesquisa um elemento na arvore.
     * @param elemento
     *        Numero a ser pesquisado na arvore.
     * @return String contendo fator de balanceamento e altura do no que armazena o elemento pesquisado;
     *        caso o parametro seja invalido (menor ou igual a zero; repetido), retornar "Parametro invalido";
     *        caso o elemento nao seja encontrado na arvore, retornar "Valor nao encontrado".
     */
    String buscar(int elemento);

    /**
     * Remove um elemento da arvore.
     * @param elemento
     *        Numero a ser pesquisado e removido da arvore.
     * @return String descrevendo o passo-a-passo da operacao (rotacoes realizadas para manter a arvore balanceada);
     *        caso o parametro seja invalido (menor ou igual a zero), retornar "Parametro invalido";
     *        caso o elemento nao seja encontrado na arvore, retornar "Valor nao encontrado".
     */
    String remover(int elemento);


    /**
     * Retorna uma string representando o caminhamento em-ordem na árvore.
     * @return String com  o caminhamento em ordem da AVL;
     *        caso a arvore nao tenha valores retorne "AVL vazia"
     */
    String imprimeEmOrdem();  
}